import re
print(re.search(r'(?<=\<).*','qitazifu<swname').group())
#语法(?<=pattern)
#例子(?<=\<).*
#这里使用了\来作为转义符
#语法大意为：待匹配字符串中的一个位置，紧贴该位置之后的字符序列能够匹配pattern,并且这位置不占宽度

#下面开始负向预查
print(re.search(r'.*(?=\>)','swname>qitazifu').group())
#.*表示任意字符（默认为贪婪模式）

#下面开始综合运用
print(re.search(r'(?<=\<).*?(?=\>)','qitazifu<swname>qitazifu').group())
#这里使用了.*?开户了非贪婪模式

#同时适配用户视图和系统视图
print(re.search(r'(?<=\<).*?(?=\>)|(?<=\[).*?(?=\])','qitazifu<Layer3Swithc-1>qitazifu').group())
print(re.search(r'(?<=\<).*?(?=\>)|(?<=\[).*?(?=\])','qitazifu[Layer3Swithc-1]qitazifu').group())

#再用第二种方法试一下
print(re.search(r'(?<=[\<\[\[]).*?(?=[\>\]])','qitazifu<Router-200>qitazifu').group())
print(re.search(r'(?<=[\<\[\[]).*?(?=[\>\]])','qitazifu[Router-200]qitazifu').group())
#以上是使用一对[]来表示<或者[ 以及>或者]

